Programación orientada a componentes

Introducción

La programación orientada a componentes es una variante de la programación orientada a objetos que utiliza la composición (en vez de la herencia) para establecer relaciones entre los diferentes elementos.

La programación orientada a componentes crea soluciones modulares y autónomas.

Las soluciones creadas pueden ser utilizadas en el desarrollo de soluciones WEB.

Un componente es una unidad de software independiente que se combina con otras para crear un sistema. Este posee un conjunto de interfaces y requisitos, y ha de poder ser desarrollado, adquirido, incorporado al sistema y compuesto con otros componentes de forma independiente, en tiempo y espacio.

 

Criterios de Meyer para definir un componente

  1. Puede ser usado por otros elementos de software.

  2. Puede ser usado por los clientes sin la necesidad de la intervención del desarrollador.

  3. Incluye las especificaciones de todas las dependencias.

  4. Incluye documentación de las funcionalidades que ofrece.

  5. Se puede entender su funcionamiento en base a las especificaciones.

  6. Se puede acoplar a otros componentes.

  7. Puede ser incorporado a un sistema de manera suave y rápida.

 

Características principales de un componente

  1. Unidad compilada y reutilizable a través de una interfaz.

  2. Se incluye en un paquete instalable y posee pocas o ninguna dependencia.

  3. Puede estar implementado en cualquier lenguaje de programación y puede ser utilizado en cualquier lenguaje (normalmente orientados a objetos).

  4. Son una solución de calidad (comercial o gratuita).

 

Reutilización

Una de las ventajas de los componentes es que aseguran la reutilización de código. Al reutilizar código se están incorporando características como:

 

Los procesos de desarrollo basados en reutilización se clasifican en:

 

Condiciones para la reutilización

  1. Existencia de repositorios o bases de componentes reutilizables.

  2. Componentes confiables que actúan de acuerdo a sus especificaciones.

  3. Los componentes están debidamente documentados.

 

Se pueden diferenciar dos tipos diferentes de reutilización de componentes:

 

Beneficios de la reutilización

 

Contexto

Un componente debe especificar sus necesidades.

Para poder implantar un componente de manera que funcione correctamente se necesita:

 

Arquitecturas basadas en componentes

CORBA (Common Object Reques Broker Architecture)

DCOM (Distruted Component Object Model)

Microsoft .NET

Enterprise JavaBeans

 

Componentes e interfaces

Las interfaces en cualquier módulo software especifican la funcionalidad de ese módulo. Desde el punto de vista de un componente es exactamente igual, una interfaz determina el conjunto de operaciones que puede realizar ese elemento.

Normalmente se especifican el conjunto de métodos públicos del componente, los atributos públicos que utiliza y el listado de eventos que puede generar.

La interfaz es el nexo de unión entre el cliente del componente y su implementación. De esta forma se logra independencia entre la utilización del componente y su implementación.

 

Para lograr un correcto funcionamiento del componente se deben respetar las interfaces en ambas direcciones.

  1. El componente debe comportarse según especifica su interfaz.

  2. La utilización del componente debe realizarse acorde con lo especificado en la interfaz del mismo.

 

Se pueden distinguir dos niveles de interfaces:

Componente

 

Cuando se especifica e implementa un componente es necesario indicar:

 

Estados de un componente

Un componente puede ser utilizado con diferentes modelos de componentes.

Para garantizar el mayor grado de utilización, se definen una serie de estados por los que puede pasar la creación de un componente:

  1. Especificación del componente: es necesario detallar el componente de manera independiente a la plataforma de desarrollo.

    Esta etapa debe generar una especificación de las interfaces que forman el componente.

  2. Implementación del componente: se procede al desarrollo de sus módulos en un lenguaje de programación determinado y cumpliendo con las características del modelo de componentes.

  3. Instalación del componente: registrar el componente en un sistema determinado para que el resto de aplicaciones puedan hacer uso de él.

  4. Objeto componente: cuando ya se ha instalado el componente se pueden crear instancias de él para su utilización.

  5. Contratos del componente:

    • Contratos de uso: establece la funcionalidad del componente a través de su interfaz.

    • Contratos de realización: se trata de un acuerdo entre la implementación y la especificación del componente.

 

by Jose Manuel Pinillos